package com.project.mapper;

import com.project.bean.UserBean;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;

/**
 * @author lyl
 * description:用户mapper接口
 */
public interface IUserMapper {

    /**
     * 输入用户密码账号进行登录
     *
     * @param username
     * @param password
     * @return 用户对象，不存在则返回null
     */
    @Select("select * from t_user where u_username = #{username} and u_password = #{password}")
    @ResultMap("userMap")
    UserBean userLogin(@Param("username") String username, @Param("password") String password);

    /**
     * 用户注册
     *
     * @param userBean 用户对象
     * @return 注册成功后用户对象，方便注册成功后直接进行登录显示信息
     */
    @Insert("insert into t_user(u_username,u_password,u_email,u_headImg,u_registerDate) values(#{username},#{password},#{email},#{headImg},#{registerDate})")
    void userRegister(UserBean userBean);

    /**
     * 检查用户名是否已经存在，如果有则返回用户对象，没有则为null
     *
     * @param username 用户名
     * @return 用户对象
     */
    @Select("select * from t_user where u_username = #{username}")
    @ResultMap("userMap")
    UserBean checkExist(@Param("username") String username);
}
